// 运行时配置

// 全局初始化数据配置，用于 Layout 用户信息和权限初始化
// 更多信息见文档：https://umijs.org/docs/api/runtime-config#getinitialstate
export async function getInitialState(): Promise<{ name: string }> {
  return { name: '@umijs/max' };
}

export const layout = (initialState) => {
  return {
    logo: 'https://img.alicdn.com/tfs/TB1YHEpwUT1gK0jSZFhXXaAtVXa-28-27.svg',
    token: {
      bgLayout: 'white',
      sider: {
        colorTextMenuSelected: '#1979ff',
      },
    },
    menu: {
      locale: false,
      // 每当 initialState?.currentUser?.userid 发生修改时重新执行 request
      params: {
        userId: initialState?.currentUser?.userid,
      },
      request: async (params, defaultMenuData) => {
        // initialState.currentUser 中包含了所有用户信息
        // const menuData = await fetchMenuData();
        console.log('meedata', defaultMenuData);
        // const afmenu = defaultMenuData.filter((m) => m.pkey == 'user');
        // console.log('meedata', afmenu);
        return defaultMenuData;
      },
    },
    menuHeaderRender: undefined,
  };
};
export const antd = (memo) => {
  memo.appConfig = {
    message: {
      // 配置 message 最大显示数，超过限制时，最早的消息会被自动关闭
      maxCount: 3,
    },
  };

  return memo;
};
export const request = {
  timeout: 6000,
  // other axios options you want
  errorConfig: {
    errorHandler() {
    },
    errorThrower() {
    },
  },
  requestInterceptors: [
    (url, options) => {
      console.log('请求url', url);
      // do something
      return { url, options };
    },
  ],
  responseInterceptors: [
    (response) => {
      console.log('返回11', response);
      // 不再需要异步处理读取返回体内容，可直接在data中读出，部分字段可在 config 中找到
      const { data = {} as any, config } = response;
      console.log('返回data', data, config);
      // do something
      return response;
    },
  ],
};